#define _CRT_SECURE_NO_WARNINGS
#include"sort.h"

int main()
{
	array<int, 10>arr = { 100,0,6,-20,5,13,7,1,8,-1 };
	int ar[10] = { 9,0,6,-20,5,13,7,1,8,-1 };

	//test_direct_insert_sort(arr);

	//test_shell_sort(arr);

	//test_heap_sort(ar);

	//test_direct_select_sort(arr);

	//test_bubble_sort(arr);

	//test_quick_sort(arr);

	//test_quick_sort_non_recursion(arr);

	//test_merge_sort(arr);

	test_count_sort(arr);

	return 0;
}

void test_direct_insert_sort(array<int,10>&arr)
{
	display_date(arr);
	direct_insert_sort(arr);
	display_date(arr);
}

void test_shell_sort(array<int, 10>& arr)
{
	display_date(arr);
	shell_sort(arr);
	display_date(arr);
}

void test_heap_sort(int(&arr)[10])
{
	display_date_ordinary(arr);
	heap_sort(arr);
	display_date_ordinary(arr);
}

void test_direct_select_sort(array<int, 10>& arr)
{
	display_date(arr);
	direct_select_sort(arr);
	display_date(arr);
}

void test_bubble_sort(array<int, 10>& arr)
{
	display_date(arr);
	bubble_sort(arr);
	display_date(arr);
}

void test_quick_sort(array<int, 10>& arr)
{
	display_date(arr);
	quick_sort(arr, arr.begin(), arr.end() - 1);
	display_date(arr);
}

void test_merge_sort(array<int, 10>&arr)
{
	display_date(arr);
	merge_sort(arr);
	display_date(arr);
}

void test_quick_sort_non_recursion(array<int,10>&arr)
{
	display_date(arr);
	quick_sort_non_recursion(arr, arr.begin(), arr.end() - 1);
	display_date(arr);
}

void test_count_sort(array<int, 10>& arr)
{
	display_date(arr);
	count_sort(arr);
	display_date(arr);
}